#pragma once

namespace ZeEngine
{
    class Event
    {
    public:
        enum EventType
        {
            //Sentinal value
            eEntityEvent = 0xBEEF
        };

    public:
        Event(u32 id);
        virtual ~Event() = default;

        u32 GetEventType() const { return m_id; }

        template <typename T>
        const T* GetEvent() const { return static_cast<const T*>(this); }

    private:
        u32 m_id;
    };
}

